SSM Agent が proxy を使用するように設定してみた
こんにちは、リサリサです。
インターネットアクセスがプロキシサーバを経由する環境で Session Manager が使いたくて、設定してみたので記事にしてみます。
Session Manager を使うには、インターネットアクセスが必要です。今回はこのように、オンプレのプロキシサーバを経由してインターネットアクセスをする必要がある環境でした。プロキシサーバを経由するために、EC2にインストールしているSSMエージェントの設定を少し変える必要がありました。ちょうど Linux と Windows と両方設定したので、まとめてみます。
Linuxの設定
こちらを参考に設定しました。今回は RHEL8 で systemd 環境で試してみました。upstart 環境の場合は、リンク先を参照ください。
プロキシを使用するように SSM Agent を設定する (Linux) - AWS Systems Manager
設定変更
以下のコマンドを実行
sudo systemctl edit amazon-ssm-agent
※スナップを使用してインストールされた Ubuntu Server インスタンスの場合は「sudo systemctl daemon-reload && sudo systemctl restart snap.amazon-ssm-agent.amazon-ssm-agent」になります。
エディタが起動するので、以下を入力して保存します。hostname と port を、プロキシの情報に置き換えます。
- HTTP プロキシサーバーの場合
[Service] Environment="http_proxy=http://hostname:port" Environment="https_proxy=http://hostname:port" Environment="no_proxy=169.254.169.254"
- HTTPS プロキシサーバーの場合
[Service] Environment="http_proxy=http://hostname:port" Environment="https_proxy=https://hostname:port" Environment="no_proxy=169.254.169.254"
オペレーティングシステムの種類に応じて、次のいずれかのファイルが自動的に作成されるようです。
- SSM Agent がスナップを使用してインストールされている Ubuntu Server インスタンスの場合
- /etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d/override.conf
- Amazon Linux 2 インスタンスの場合
- /etc/systemd/system/amazon-ssm-agent.service.d/override.conf
- 他のオペレーティングシステムの場合
- /etc/systemd/system/amazon-ssm-agent.service.d/amazon-ssm-agent.override
SSM Agent の再起動
sudo systemctl daemon-reload && sudo systemctl restart amazon-ssm-agent
※スナップを使用してインストールされた Ubuntu Server インスタンスの場合は「sudo systemctl daemon-reload && sudo systemctl restart snap.amazon-ssm-agent.amazon-ssm-agent」になります。
Windowsの設定
こちらを参考に設定しました。今回は Windows2019 で試してみました。
SSM エージェントが Windows Server インスタンス用にプロキシを使用するように設定する - AWS Systems Manager
PowerShell で次のコマンドブロックを実行します。hostname と port を、プロキシの情報に置き換えます。
$serviceKey = "HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent" $keyInfo = (Get-Item -Path $serviceKey).GetValue("Environment") $proxyVariables = @("http_proxy=hostname:port", "https_proxy=hostname:port", "no_proxy=169.254.169.254") If($keyInfo -eq $null) { New-ItemProperty -Path $serviceKey -Name Environment -Value $proxyVariables -PropertyType MultiString -Force } else { Set-ItemProperty -Path $serviceKey -Name Environment -Value $proxyVariables } Restart-Service AmazonSSMAgent
結果
設定後比較的すぐに、どちらも Session Manager から見えるようになりました!
参考
[1]プロキシを使用するように SSM Agent を設定する (Linux) - AWS Systems Manager
[2]SSM エージェントが Windows Server インスタンス用にプロキシを使用するように設定する - AWS Systems Manager